using System;
using Volo.Abp.Domain.Entities.Auditing;

namespace Acme.BookStore.StockManagement
{
    /// <summary>
    /// 库存主信息表实体类
    /// </summary>
    public class KucunZhuXinxi : AuditedAggregateRoot<int>
    {
        /// <summary>
        /// 序号
        /// </summary>
        public int SerialNumber { get; set; }

        /// <summary>
        /// 货品编号
        /// </summary>
        public string GoodsCode { get; set; } = string.Empty;

        /// <summary>
        /// 货品名称
        /// </summary>
        public string GoodsName { get; set; } = string.Empty;

        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; } = string.Empty;

        /// <summary>
        /// 货品类型
        /// </summary>
        public string GoodsType { get; set; } = string.Empty;

        /// <summary>
        /// 规格型号
        /// </summary>
        public string Specification { get; set; } = string.Empty;

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; } = string.Empty;

        /// <summary>
        /// 条码
        /// </summary>
        public string Barcode { get; set; } = string.Empty;

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; } = string.Empty;

        /// <summary>
        /// 库位名称
        /// </summary>
        public string LocationName { get; set; } = string.Empty;

        /// <summary>
        /// 当前库存
        /// </summary>
        public int CurrentStock { get; set; }

        /// <summary>
        /// 库存金额
        /// </summary>
        public decimal StockAmount { get; set; }

        /// <summary>
        /// 待入库
        /// </summary>
        public int ToBeStored { get; set; }

        /// <summary>
        /// 待出库
        /// </summary>
        public int ToBeShipped { get; set; }

        /// <summary>
        /// 可用库存
        /// </summary>
        public int AvailableStock { get; set; }

        /// <summary>
        /// 可用库存金额
        /// </summary>
        public decimal AvailableStockAmount { get; set; }

        /// <summary>
        /// 期初库存
        /// </summary>
        public int InitialStock { get; set; }

        /// <summary>
        /// 期末库存
        /// </summary>
        public int FinalStock { get; set; }
    }
} 